草庐IT

Java getNodeName 和命名空间

全部标签

C++ getline() 不需要命名空间声明

为什么getline()来自本地范围内的headerstring并且可以使用:#include#includeintmain(){std::stringstr;getline(std::cin,str);std::cout这适用于gcc。但为什么?它在headerstring中定义,这应该要求我使用std::getline()而不是getline()。 最佳答案 您正在体验参数相关查找(ADL,也称为Koenig查找)。由于一个或多个参数是std命名空间中定义的类型,因此它会在std命名空间中搜索该函数,而不是搜索其他任何地方。我给

c++ - 处理 header 中令人痛苦的长命名空间名称

对于需要在头文件中引用的looong符号,有什么可以做的吗?ABDEFGHIJ::ZXCBVB::AWEDADSDEM::GFGBKGDF::Tools::Item?我知道在头文件中你不应该使用using因为它会把包含它的人搞得一团糟。我什至能想到的唯一可以自行清理的有效功能是#define+#undef但这看起来很糟糕。是否有我不知道的解决此问题的新功能?我也对任何受欢迎的提案感兴趣。也许使用和方括号block语法,让我将效果限制在我的标题...? 最佳答案 usingnamespace不是好的做法在头文件中的全局范围内使用指令。

c++ - 不必要地使用未命名的命名空间 C++

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion我在公司到处都能看到这样的代码:namespace{constMAX_LIMIT=50;conststd::stringTOKEN="Token";}我很困惑为什么你需要一个匿名命名空间。一方面,您需要一个用于MAX_LIMIT和TOKEN的本地翻译单元。但由于const,这已经在没有匿名命名空间的情况下实现了。staticconst和简单的const都实现了本地翻译单元。另一方面,如果文

c++ - OpenCV:将标量转换为不同的颜色空间

我正在使用Scalar来定义我使用OpenCV绘制的矩形的颜色:rectangle(imgOriginal,Point(0,0),Point(25,50),Scalar(H,S,V),CV_FILLED);但是,颜色是在HSV颜色空间而不是RGB中定义的(imgOriginal是RGB)。如何转换Scalar(或其输入,整数变量H、S和V)到RGB?(到目前为止,我只找到了告诉我如何使用cvtColor转换整个图像的答案,这不是我想要的。) 最佳答案 虽然不是最优的,但您可以使用以下内容:ScalarScalarHSV2BGR(uc

c++ - 没有命名类类型的方法函数指针模板

考虑这个模板函数,调用类T对象的方法。templatevoidcircuitousInvoke(T*callee){(callee->*Method)();}例子:structA{voidtest(){};}circuitousInvoke(newA);由于参数callee中的circuitousInvoke已经知道类型T,是否有办法避免键入此类型?circuitousInvoke(newA);编辑此问题仅涉及模板函数。继承和其他基于类的解决方案不适合这种情况。(在我的项目中,使用包装器对象比输入额外的名称更糟糕。) 最佳答案 在C

C++ 命名空间 - "using"或明确说明?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:Whyis‘usingnamespacestd;’consideredabadpracticeinC++?UsingstdNamespace这只是一个偏好问题吗?或者是否有更喜欢的正当理由usingnamespacestd;#includemyStringstring;或#includemyStringstd::string;我想每次都显式声明命名空间,同时拖动输入,避免了任何可能的名称冲突(或者编译器会警告歧义吗?)问题:是否有令人信服的论据?

c++ - 为什么 CRTP 实现和接口(interface)方法的命名不同?

无论我在哪里阅读有关CRTP的文章,实际上在我编写的代码中,CTRP类层次结构都类似于以下内容:templateclassBase{public:intfoo_interface(){returnstatic_cast(this)->foo_implementation();}};classDerived:publicBase{friendclassBase;intfoo_implementation(){return5;}};也就是接口(interface)名称和实现方法不同。现在,我通常不希望实现方法从外部可见,这需要上面的friend声明,并且在多级层次结构中证明是一个主要的问题

c++ - 从派生调用时编译器找不到基类方法,并且派生定义了具有附加参数的相同命名方法

这是一个带有简单代码粘贴的ideone链接:http://ideone.com/BBcK3B.基类有一个无参函数,而派生类有一个带参数的函数。一切都是公开的。为什么从B的实例调用时编译器找不到A::foo()?代码:#includeusingnamespacestd;classA{public:virtualvoidfoo(){cout编译错误:prog.cpp:Infunction‘intmain()’:prog.cpp:25:11:error:nomatchingfunctionforcallto‘B::foo()’b.foo();^prog.cpp:25:11:note:cand

c++ - C++中通过继承类重命名类成员

我想“重命名”我类(class)ofVec4f的一些成员。我知道这在严格的C++中是不可能的,但我可以创建一个继承self的类的新类并声明新成员,这些新成员是原始成员的别名或指针吗?我尝试了以下方法:classofVec4fGraph:publicofVec4f{public:float&minX;float&maxX;float&minY;float&maxY;ofVec4fGraph(float_minX,float_maxX,float_minY,float_maxY):minX(_minX),maxX(_maxX),minY(_minY),maxY(_maxY){ofVec4f

c++ - 如何删除 QMainWindow 和 mdiArea 之间的空间(边距)?

我有一个QMainWindow并且我在主窗口中插入了mdiArea。你必须先看到下图:如您所见,灰色区域是mdiArea,主窗口和mdiArea之间的空格(边距)是我要删除的部分。我使用了setContentsMargins函数,但没有做任何事情。如何删除这些空格?我要像下图这样: 最佳答案 QMainWindow有一个具有布局的中央小部件。您在QMainWindow上使用的布局应该在其中央小部件上使用。因此你必须打电话QWidget*QMainWindow::centralWidget()首先,所以可以先获取centralwidg